package com.xieyong.leetcode;

public class Leetcode3403 {
    public static void main(String[] args) {
        Leetcode3403 leetcode3403 = new Leetcode3403();
        String word = "aaaaaaaaaaaaaaaaaaaz";
        int num = 2;
        String s = leetcode3403.answerString(word, num);
        System.out.println(s);
    }
//       方法超时

//    public String answerString(String word, int numFriends) {
//        if(numFriends == 1) {
//            return word;
//        }
//        int maxlen = word.length()- numFriends +1;
//        String res = word.substring(0, maxlen);
//        for (int i = 0; i < word.length(); i++) {
//            if(word.charAt(i) >= res.charAt(0)) {
//                int len = Math.min(word.length() - i, maxlen);
//                for(int j = 1; j <= len; j++) {
//                    String sub = word.substring(i, i + j);
//                    if(compareword(sub,res) > 0) {
//                        res = sub;
//                    }
//                }
//            }
//        }
//        return res;
//    }
//
//    private int compareword(String a, String b) {
//        for(int i = 0; i < Math.min(a.length(),b.length()); i++) {
//            if (a.charAt(i) != b.charAt(i)) {
//                return a.charAt(i) - b.charAt(i);
//            }
//        }
//        return a.length() - b.length();
//    }


    public String answerString(String word, int numFriends) {
        if(numFriends == 1) {
            return word;
        }
        int maxlen = word.length()- numFriends +1;
        String res = word.substring(0, maxlen);
        for (int i = 0; i < word.length(); i++) {
            if(word.charAt(i) >= res.charAt(0)) {
                String sub = word.substring(i, i + Math.min(word.length() - i, maxlen));
                if(compareword(sub,res) > 0) {
                    res = sub;
                }
            }
        }
        return res;
    }

    private int compareword(String a, String b) {
        for(int i = 0; i < Math.min(a.length(),b.length()); i++) {
            if (a.charAt(i) != b.charAt(i)) {
                return a.charAt(i) - b.charAt(i);
            }
        }
        return a.length() - b.length();
    }
}
